Skip to main content

Extend

You can extend with prebuilt functionality.

See a list of extensions here

https://get.supacharger.dev/source/plugins/

You will need to add your github username

How To install Supacharger Extensions

Using the CLI

See the cli documentation install function here

Using Git

This requires a github account.

You need to get a License from the store this will grant you read permissions on the github repository. You will recieve an email with instructions and the github url to use.

To import the code as a git submodule:

cd /

git submodule add git@github.com:glowplug-studio/supacharger-ext-brevo-newsletter.git src/app/\(supacharger\)/\(plugins\)/brevo-newsletter

if promopted enter your local SSH key passkey, or git creds.

After successfully cloned enabled the module in

src/app/(project)/(plugins)/brevo-newsletter/brevo-newsletter/config.js

set

exports.SC_PLUGIN_CONFIG = {
PLUGIN_ENABLED: true,

Then rebuild the project

npm run build
npm run dev

Pulling updates to the submodule

⚠️ Warning! this might cause breaking changes, be prepared to roll back.

cd path/to/submodule
git checkout main # or the branch you track, e.g. master
git pull origin main

Updating a plugin

Probaly use the install with -f flag

Manually Removing a plugin

Navigate to the project root.

cd /

Remove the plugin folder

rm -rf src/app/\(supacharger\)/\(plugins\)/brevo-newsletter

Deinitialize the submodule:

git submodule deinit -f src/app/\(supacharger\)/\(plugins\)/brevo-newsletter

Remove the submodule entry from the index:

git rm --cached src/app/\(supacharger\)/\(plugins\)/brevo-newsletter

Remove the submodule folder from .git/modules:

rm -rf .git/modules/src/app/\(supacharger\)/\(plugins\)/brevo-newsletter

You can then use Supabase studio locally to remove functions and tables and push up the changes or cloud and pull down with migrations. You will need to check files that are modified during install by looking in the Plugins install.js file.

Using an Plugin in your Project

Code

Typically you will need to mnaully integrate the plugin where the documentation suggests.

Migrations & Seed data

Use the Supabase CLI to run the sql files

Edge & RPC functions

Use the Supabase CLI to push your edge functions and RPC

Modifying and editing plugins & RPC functions

Feel free to copy the files out of the (supacharger) file structure and modify to suit your own needs. Modifications of the plugin in-situ may result in lost changes if updates are pulled from the gitsubmodule.

Creating a plugin

We are exploring how to reward developers who want to sell functionality with the dev bounty.

Anatomy of a Plugin

Files are colocated using nextjs folder structure best practice

App Router Considerations

Any page file inside your module will appear relative to /app in the site navigation as NextJS ignores the bracketed folders

Plugins will be installed to

src/app/(project)/(plugins)

/my-plugin

/my-plugin/index.tsx

/my-plugin/actions.ts

/my-plugin/config/install.js

/my-plugin/config/config.js

/my-plugin/config/supabase

/my-plugin/components

Build Supacharger with SpecdriveKeep the specification, infrastructure and agent work in one project context.